const express = require('express')
const app = express()
const path = require('path')
// 使用静态文件中间件，把public作为静态文件根目录
app.use(express.static(path.resolve('public')))
const server = require('http').createServer(app)




// socket.io依赖http服务器
let io = require('socket.io')(server);

// 默认的命名空间就是'/'
io.of('/dev').on('connection', function(socket){
  console.log('客户端已经连接')
  let roomName
  // 监听socket的message事件监听传过来的消息
  socket.on('message', function(message){
    console.log(message)
    // socket.send('server:' + message)
    // 广播消息，所有连接服务器的客户端都能收到消息
    // io.emit('message') 向所有客户端广播，
    // io.of('/dev').emit('message', message)
    // 向roomName房间内所有人广播
    io.of('/dev').in(roomName).emit('message', message)
  })
  socket.on('join', function(name){
    // 如果进入某个房间内了，则说话只能房间内的人听见
    roomName = name
    socket.join(name)  // join方法可以进入某个房间
  })
  socket.on('leave', function(name){
    socket.leave(name)
    roomName = null
  })
})



io.of('/chat').on('connection', function(socket){
  console.log('客户端已经连接')
  // 监听socket的message事件监听传过来的消息
  socket.on('message', function(message){
    console.log(message)
    // socket.send('server:' + message)
    // 广播消息，所有连接服务器的客户端都能收到消息 socket.broadcast
    io.of('/chat').emit('message', message)
  })
})


server.listen(8080)
